草庐IT

HA 模式

全部标签

javascript - 使用 Browserify/CommonJS 的单例模式

尝试使用Browserify在CommonJS模块中实现单例模式。到目前为止://foo.jsvarinstance=null;varFoo=function(){if(instance){returninstance;}this.num=0;returninstance=newFoo();}Foo.prototype.adder=function(){this.num++;};module.exports=Foo();//主.jsvarfoo=require('./foo.js');console.log(foo.num);//shouldbe0foo.adder();//shoul

javascript - "HTTP Streaming"(推送)AJAX 模式的跨浏览器实现

客户端从服务器请求网页。然后客户要求进行额外的计算;服务器执行一系列计算并在可用时立即发送部分结果(文本格式,每行包含单独的完整项目)。客户端使用服务器提供的信息更新网页(使用JavaScript和DOM)。这似乎适合HTTPStreaming(current版本)来自Ajaxpatterns网站的模式。问题是如何以跨浏览器(浏览器不可知论)的方式做到这一点,最好不使用JavaScript框架,或使用一些轻量级框架,如jQuery。问题始于以跨浏览器方式生成XMLHttpRequest,但我认为主要问题是并非所有浏览器都正确地实现了onreadystatechangefromXMLHt

javascript - 在 checkout.js 上禁用 Paypal 机器人后消息传递 - 如何关闭 Debug模式

我尝试了几种方法来在我的浏览器控制台上禁用Paypalpost-robot调试消息,但似乎都没有用。这些消息非常烦人的原因是它们使调试浏览器变得更加困难,因为它们有很多,隐藏了一些其他控制台警告。控制台日志来自Paypalcheckout.js文件,该文件作为外部资源加载到我们的域中。我在Paypal开发者页面上发现的关于调试的唯一信息是:https://developer.paypal.com/docs/classic/express-checkout/in-context/javascript_advanced_settings/?mark=debug我确实尝试过反转条件,例如do

javascript - AngularJS 设计模式 : Should I use factories to create constructor functions?

这是我在创建AngularJS应用程序时一直在考虑的问题。当我第一次了解AngularJS工厂时,我认为它们的一个巧妙用法是创建并返回一个构造函数而不是一个普通对象,例如:app.factory("Foo",function(){functionFoo(bar,baz){this.bar=bar;this.baz=baz;...}Foo.prototype={constructor:Foo,method1:function(){...},method2:function(){...},...,methodn:function(){...},};returnFoo;});然后,您可以将该

javascript - crockford 的 JavaScript 构造函数模式真的应该更快吗?

我最近尝试为一个经常创建的值对象优化一些代码。(三维向量,fwiw)我尝试的一件事是将构造函数从匿名方法工厂模式转换为普通的JavaScript构造函数。这导致了severeperformancepenalty这让我感到惊讶,因为在我的lastquestion中强烈推荐使用"new"和普通构造函数关于JavaScript构造函数/工厂模式的主题。很可能是我的测试过于简单,或者完全错误,或者是最近在chrome的JavaScript引擎中进行的性能优化的结果,或者以上所有原因。无论如何,我真的很想知道为什么我的“优化”导致性能下降-以及-最重要的是:我的jsperf测试运行是否有任何明显

Javascript 模块模式事件和监听器

我正在实现模块模式,并且想知道定义和注册事件监听器/处理程序的最佳/首选方法。以下工作,但也许有更好/更简单的方法......varMODULE=function(){//privatevar_field1;var_field2;functionlocalFunc(p){alert('localFunc');}//publicreturn{//propertiesprop1:_field1,//eventsmyEvent1Handler:{},myEvent1:function(){myEvent1Handler();},myEvent2Handler:{},myEvent2:func

javascript - (function eval () {}) 如果函数体处于严格模式会抛出语法错误?

为什么这段代码会抛出错误?//globalnon-strictcode(functioneval(){'usestrict';});现场演示:http://jsfiddle.net/SE3eX/1/所以,我们这里有一个命名函数表达式。我想明确指出这个函数表达式出现在非严格代码中。如您所见,它的函数体是严格的代码。严格模式规则在这里:http://ecma-international.org/ecma-262/5.1/#sec-C相关项目符号是这个(它是列表中的最后一个):ItisaSyntaxErrortousewithinstrictmodecodetheidentifierseva

javascript - JavaScript 中的单例模式

下面是一个非常流行的JavaScript单例模式实现示例:varmySingleton=(function(){varinstance;functioninit(){functionprivateMethod(){console.log("Iamprivate");}varprivateVariable="Imalsoprivate";varprivateRandomNumber=Math.random();return{publicMethod:function(){console.log("Thepubliccanseeme!");},publicProperty:"Iamalso

javascript - 从 subview 模型修改在父级上可观察到的 knockout 的模式

我设置了父subview模型对象结构,需要从子对象更新父对象的可观察对象。我基本上想出了两种模式:1]将父属性的引用传递给子属性并从子属性中更新属性:varParentViewModel=function(){varself=this;this.selectedItem=ko.observable();this.child=ko.observable(newChildViewModel(self.selectedItem));}varChildViewModel=function(parentSelectedItem){varself=this;this.id=ko.observabl

javascript - 区分IE7浏览器和IE7兼容模式下的浏览器

我可以区分客户端的浏览器是IE7还是IE7IE9在IE7兼容模式下?我想弄清楚我是否可以在我的网站上进行JS检查,它会识别两种不同的东西并根据结果做不同的事情浏览器是IE7该浏览器处于IE7兼容模式我的第一个条件可以正常工作,因为到处都在说如何做到这一点。不确定第二个和/或两者的组合。 最佳答案 至少对于IE8和IE9,您可以检查navigator.userAgent中是否包含子字符串Trident。IE8+总是在其用户代理中有一个Trident,而IE7则没有。参见thisanswer和theMSDNlinkinit.IE10似乎